// 下面这个代码处理过度动画（默认加上不用管）
document.addEventListener('DOMContentLoaded', () => {
  setTimeout(() => {
    document.body.classList.add('sidenav-pinned')
    document.body.classList.add('ready')
  }, 200)
})

// Axios配置 -------------------------------------------
// 1. 配置请求的根路径
axios.defaults.baseURL = 'http://ajax-api.itheima.net'

// 2. 配置请求头（全局配置 || 请求拦截器）
// axios.defaults.headers.common['Authorization'] = localStorage.getItem('token')

// 添加请求拦截器
axios.interceptors.request.use(
  function (config) {
    // 在发送请求之前做些什么
    // console.log(config)
    if (config.url !== '/login' && config.url !== '/register') {
      config.headers.Authorization = localStorage.getItem('token')
    }
    return config
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error)
  }
)

// 添加响应拦截器
axios.interceptors.response.use(
  function (response) {
    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么
    return response
  },
  function (error) {
    // console.dir(error)
    if (error.response) {
      // 先确保能够得到响应结果
      if (error.response.data.message === 'token验证失败') {
        // 说明token过期了，或者使用了假token
        localStorage.removeItem('token')
        location.href = './login.html'
      }
    }
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    return Promise.reject(error)
  }
)

// --------------------------------- 显示用户名 和 退出功能 --------------------------
if (document.querySelector('#username') && document.querySelector('#logout')) {
  document.querySelector('#username').innerHTML = localStorage.getItem('username')

  document.querySelector('#logout').addEventListener('click', function () {
    // 使用插件提供的 message.confirm('提示标题', '消息', res => {})
    message.confirm('提示', '你确定要退出吗？', res => {
      // 点击确定，res=true； 点击取消，res=false
      if (res) {
        // 移除本地存储的username和token
        localStorage.removeItem('username')
        localStorage.removeItem('token')
        // 跳转到登录页  // js文件中的路径，不能以js文件在哪里为准，和js文件在哪里无关
        // 和 使用js的html文件有关系
        location.href = './login.html'
      }
    })
  })
}
